imperative deep learning program
Supplementary Material for Paper " Terra: Imperative-Symbolic Co-Execution of Imperative Deep Learning Programs "
For example, the MatMul operation of TensorFlow has'MatMul' as As same as the call id stack, Terra manages the loop id stack for the entire program execution. Figure 2: The result of the case assignment algorithm for the given TraceGraph.2 4 In this section, we describe the case assignment algorithm that Terra uses to explicitly insert the Switch-Case operations in the symbolic graph. The algorithm takes a TraceGraph as an input and returns an ordered list of switch-cases. A switch-case 6is a set of (basic block, control edges) where thebasic block is a linear3 chain of nodes, and the5control edges are the edges that point to the basic block. Every non-overlapping linear chain of nodes in the TraceGraph is uniquely assigned to a basic block so that the ordered list of3switch-cases 5can cover every trace in the TraceGraph.
Terra: Imperative-Symbolic Co-Execution of Imperative Deep Learning Programs
Imperative programming allows users to implement their deep neural networks (DNNs) easily and has become an essential part of recent deep learning (DL) frameworks. Recently, several systems have been proposed to combine the usability of imperative programming with the optimized performance of symbolic graph execution. Such systems convert imperative Python DL programs to optimized symbolic graphs and execute them.
Terra: Imperative-Symbolic Co-Execution of Imperative Deep Learning Programs
Imperative programming allows users to implement their deep neural networks (DNNs) easily and has become an essential part of recent deep learning (DL) frameworks. Recently, several systems have been proposed to combine the usability of imperative programming with the optimized performance of symbolic graph execution. Such systems convert imperative Python DL programs to optimized symbolic graphs and execute them. For example, if an imperative DL program contains a Python feature with no corresponding symbolic representation (e.g., third-party library calls or unsupported dynamic control flows) they fail to execute the program. To overcome this limitation, we propose Terra, an imperative-symbolic co-execution system that can handle any imperative DL programs while achieving the optimized performance of symbolic graph execution.
Imperative-Symbolic Co-Execution of Imperative Deep Learning Programs
The rapid evolution of deep neural networks (DNNs) has been fueled by the support of deep learning (DL) frameworks like TensorFlow and PyTorch. DL frameworks allow users to build and execute DNNs through Python programming. The standard execution model in DL frameworks is imperative execution: the Python Interpreter executes a DL program just as it treats a regular Python program. Let us go over a simple DL program to grasp the concept. Here, we assume that the condition the Interpreter first evaluates is True.